﻿using System;
using System.Drawing;
using System.Windows.Forms;

namespace Abide_AddOn_API.Interfaces
{
    /// <summary>
    /// Represents a base Settings Page.
    /// </summary>
    public interface ISettingsPage : IDisposable
    {
        /// <summary>
        /// Gets and returns the display icon of the AddOn.
        /// </summary>
        Image Icon { get; }
        /// <summary>
        /// Gets and returns the tab text of this page.
        /// </summary>
        string Text { get; }
        /// <summary>
        /// Gets and returns the UI of the settings page.
        /// </summary>
        UserControl Interface { get; }
        /// <summary>
        /// Called when the settings page is being loaded, where the controls are to be set.
        /// </summary>
        void LoadSettings();
        /// <summary>
        /// Called when the settings are applied and saved.
        /// </summary>
        void ApplySettings();
        /// <summary>
        /// Occurs after settings applied.
        /// </summary>
        void SaveSettings();
    }
}
